/**
 * 使用mongoose 操作mongodb数据库
 */

// 引入mongoose
const mongoose = require('mongoose')
// 连接数据库
mongoose.connect('mongodb://localhost/gzhipin_test2', {useNewUrlParser: true, useUnifiedTopology: true})
// 获取连接对象
const conn = mongoose.connection
// 绑定连接完成的监听
conn.on('connected', function () {
  console.log('数据库连接完成');
})

// 加密
const md5 = require('blueimp-md5')

// 定义文档结构
const userSchema = mongoose.Schema({  // 指定文档结构： 属性名 属性值的类型  默认值
  username: {type: String, required: true},
  password: {type: String, required: true},
  type: {type: String, required: true},
  header: {type: String}
})

// 通过model进行增删查改操作
const UserModel = mongoose.model('user', userSchema)  //集合的名字为users
function testSave() {
  // 
  const userModel = new UserModel({username: 'bob', password: md5('123'), type: 'dashen'})
  // save
  userModel.save(function (err, doc) {
    console.log('save()' ,err, doc);
  })
}
// testSave()
function testFind(){
  // find 找到的文档是数组类型
  UserModel.find(function (err, data) {
    console.log(data, err);
  })
  // 这个是对象类型
  UserModel.findOne({username: 'bob'}, function (err, data) {
    console.log(data);
  })
}
// testUpDate()
function testUpdate() {
  UserModel.findByIdAndUpdate({_id: '5e35981fe64c0b6d337a42f6',}, {username: 'james'}, function (err, olddata) {
    console.log(olddata);
  } )
}
// testDelte()
function testDelte() {
  UserModel.remove({_id: '5e35981fe64c0b6d337a42f6'}, function (err, dat) {
    console.log(dat); // { n: 1, ok: 1, deletedCount: 1 } n=1删除一条 ok=1 删除成功
  })
}
testDelte()